package com.nebula.service;

import com.nebula.common.PageResult;
import com.nebula.entity.Role;
import com.nebula.vo.RoleVo;

import java.util.List;
import java.util.Map;

/**
 * @author CcccX
 * @create 2019-01-15 14:32
 */
public interface IRoleService {

    /**
     * 查询所有权限
     *
     * @return list
     */
    List<RoleVo> findAll();

    /**
     * 查询该菜单所属角色组
     *
     * @param navId 菜单ID
     * @return List
     */
    Map<String, Object> selectRoleIdByNavIdFromRoleNavigation(String navId);

    /**
     * 查询角色名
     *
     * @param roleId 角色ID
     * @return String 角色名
     */
    Role findById(int roleId);

    /**
     * 分页查询权限
     *
     * @param page 当前页
     * @param size 每页显示条数
     * @param roleId 角色组ID
     * @return PageResult<RoleVo>
     */
    PageResult<RoleVo> findByPage(int page, int size, int roleId);

    /**
     * 新增角色
     * @param role 角色实体
     */
    void save(Role role);

    int delete(int id);

    void update(Role role);

}
